package com.sunrise.financeiro.servico;

import java.util.Collection;

import javax.annotation.Resource;

import lombok.Getter;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.sunrise.financeiro.repositorio.iface.CategoriaFinanceiraDao;
import com.sunrise.financeiro.repositorio.iface.GrupoCategoriaFinanceiraDao;
import com.sunrise.generico.entidade.CategoriaFinanceira;
import com.sunrise.generico.entidade.GrupoCategoriaFinanceira;
import com.sunrise.generico.enums.TipoMovimentacaoFinanceira;
import com.sunrise.generico.visao.Filtro;

@Service
@Transactional(readOnly = true)
public class ManterCategoriaFinanceiraService {

	@Resource(name = "categoriaFinanceiraDaoImpl")
	@Getter
	private CategoriaFinanceiraDao categoriaFinanceiraDAO;
	
	@Resource(name = "grupoCategoriaFinanceiraDaoImpl")
	@Getter
	private GrupoCategoriaFinanceiraDao grupoCategoriaFinanceiraDAO;

	public Collection<CategoriaFinanceira> buscarPorFiltros(Filtro categoriaFinanceira){
		return getCategoriaFinanceiraDAO().buscarPorFiltros(categoriaFinanceira);
	}

	public Collection<GrupoCategoriaFinanceira> listarGruposPorTipoMovimentacao(
			TipoMovimentacaoFinanceira tipoMovimentacaoFinanceira) {
		return getGrupoCategoriaFinanceiraDAO().buscarPorTipoMovimentacao(tipoMovimentacaoFinanceira);
	}

	public Collection<GrupoCategoriaFinanceira> listarGrupos() {
		return getGrupoCategoriaFinanceiraDAO().listarOrdenado();
	}
}